/* PROJECTO: Projecto 3
 * FICHEIRO: pontuacao.cpp
 *
 * DESCRIÇÃO: Codigo correspondente a pontuacao.
 *            Nao implementa o CalcularPontuacao(), LerFicheiroPontuacao();
 *            EscreverFicheiroPontuacao() e operator<<(ostream& out, const Pontuacao& p)
 *
 * TURMA / GRUPO: Turma 1 / Grupo 12
 * AUTORES: Fábio Domingo da Silva Rodrigues
 *          Rolando Emanuel Lopes Pereira
 *
 * DECLARAÇÃO:
 * Declaramos sob compromisso de honra que este trabalho nas suas partes
 * constituintes de código (e relatório, se aplicável) é original e da nossa
 * autoria, não correspondendo, portanto, a cópia ou tradução de outros
 * trabalhos já realizados, na FEUP ou fora dela.
 * Mais declaramos que todos os documentos ou código que serviram de base ao
 * desenvolvimento do trabalho descrito no relatório e seus anexos são
 * adequadamente citados e explicados na respectiva secção de referências
 * bibliográficas e que todas as eventuais partes transcritas ou utilizadas de
 * outras fontes estão devidamente assinaladas, identificadas e evidenciadas.
 * Subscrevemos a declaração acima:
 * Fábio Domingo da Silva Rodrigues
 * Rolando Emanuel Lopes Pereira
 *
 * REFERÊNCIAS E FONTES DE INFORMAÇÃO UTILIZADAS:
 *
 * SISTEMA OPERATIVO:
 * Debian 4.0
 * AMBIENTE DE DESENVOLVIMENTO:
 * Vim 7.0.235
 *
 * DATA DE INÍCIO: 20/05/2009
 * DATA DE CONCLUSÃO: 30/05/2009
 *
 * */

#include <string>
#include <ostream>
#include <algorithm>
#include "pontuacao.h"
#include <iostream>

using std::string;
using std::ostream;
using std::endl;
using std::cout;


Pontuacao::Pontuacao(Jogador jogador)
{
	Jog = jogador;
}

Pontuacao::~Pontuacao()
{

}

int Pontuacao::CalcularPontuacao() const
{
	return 0;
}

void Pontuacao::OrdenarPontuacao()
{
    /* TODO: Utilizar algoritmo sort da std */

//    pnt teste("teste", 10);
    /*pnt teste("teste", 10);
    pnt teste2("teste2", 20);
    pnt teste3("teste3", 30);
    pnt teste4("teste4", 40);
    pnt teste5("teste5", 50);
    pnt teste6("teste6", 60);
    pnt teste7("teste7", 70);


    Pontuacoes.push_back(teste);
    Pontuacoes.push_back(teste2);
    Pontuacoes.push_back(teste3);
    Pontuacoes.push_back(teste4);
    Pontuacoes.push_back(teste5);
    Pontuacoes.push_back(teste6);
    Pontuacoes.push_back(teste7);

    for (int i = 0; i < 7; ++i)
    {
        cout << Pontuacoes[i].Nome << " " << Pontuacoes[i].Pontuacao << endl;
    }*/

    sort(Pontuacoes.begin(), Pontuacoes.end(), sortFunc);
}

void Pontuacao::LerFicheiroPontuacao(string ficheiro)
{

}

void Pontuacao::EscreverFicheiroPontuacao(string ficheiro) const
{

}

bool Pontuacao::sortFunc(const pnt& p1, const pnt& p2)
{
    /* Serve para ordenar da maior pontuacao para a menor, quando usada com o
       sort da std */
    return p1.Pont > p2.Pont;
}

ostream& operator<< (ostream& out, const Pontuacao& p)
{
    out << "PONTUACAO_TESTE" << endl;
    return out;
}
